package collection;

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
/**
 * 集合受到元素toString和equals方法影响的相关操作
 */
public class CollectionDemo2 {
    public static void main(String[] args) {
        Collection c=new HashSet();
        c.add(new Point(1,2));
        c.add(new Point(2,3));
        c.add(new Point(3,4));
        c.add(new Point(4,5));
        System.out.println(c);
        /*
            如果Point没有重写equals方法,那么Object的equals默认为"=="判断.
            此时发现下面的Point对象可以存入Set集合.
            但是如果Point重写equals方法,则下面的Point对象无法存入(因为上面已经存入过内容
            相同的元素了)
         */
        c.add(new Point(1,2));
        System.out.println(c);

        /*
        boolean contains(object o)\
        判断当前集合是否包含给定元素
        判断标准:
        该元素是否与集合现有元素操作equals比较为true的情况,操作则认为包含
         */
        Point p=new Point(1,2);
        boolean contains=c.contains(p);
        System.out.println("是否包含:"+contains);

        /*
        boolean remove(object o)
        从集合中删除给定一个元素,元素被成功的删除,则返回一个true
        删除逻辑:
            删除集合中与给定元素equals比较为true的元素.

            对于List集合而言,如果删除的是集合中的重复元素,那么也仅会将靠前的第一个元素删除.
         */
        c.remove(p);
        System.out.println(c);
    }
}
